#define _CRT_SECURE_NO_WARNINGS 1
#include <string.h>


//int main()
//{
//    char s[] = "ababab";
//    /*char arr[20] = { 0 };
//    int index = 0;
//    int max = 0;
//    int sum = 0;
//    for (int i = 0; i < strlen(s); ++i)
//    {
//        sum |= 1 << (s[i] - 'a');
//        if (sum > max)
//        {
//            arr[index++] = s[i];
//            max = sum;
//        }
//        else
//        {
//            break;
//        }
//    }
//    int tmp = index;
//    while (index < strlen(s))
//    {
//        int i = 0;
//        int j = tmp;
//        while (i < j)
//        {
//            arr[index++] = arr[i++];
//        }
//        if (!strcmp(arr, s))
//        {
//            return 1;
//        }
//    }*/
//    int len = strlen(s);
//    int i;
//    int match = 0;
//    for (i = 1; i * 2 <= len; i++) {
//        if (len % i == 0) {
//            int j;
//            for (j = i; j < len; j++) {
//                if (s[j] == s[j - i]) {
//                    match = 1;
//                }
//                else {
//                    match = 0;
//                    break;
//                }
//            }
//            if (match == 1) {
//                return 1;
//            }
//        }
//    }
//    return 0;
//}


//void Judge(int* s)
//{
//	*s = 0;
//	++s;
//	*s = 1;
//}
//void reverse(char* s) {
//	int len = strlen(s) - 1;
//	char tmp = *s;
//	*s = *(s + len);
//	*(s + len) = 0;
//	if (*(s + 1) != 0)
//	{
//		reverse(s + 1);
//	}
//	*(s + len) = tmp;
//}
//int main()
//{
//	char a[] = "11";
//	char b[] = "1";
//
//	int arr[10] = { 0 };
//	reverse(a);
//	reverse(b);
//	int i = 0;
//		for (i = 0; i < strlen(a); ++i)
//	{
//		if (strlen(a) > i)
//		{
//			arr[i] += a[i] - '0';
//			if (arr[i] == 2)
//			{										
//				Judge(arr + i);
//			}
//		}
//		if (strlen(b) > i)
//		{
//			arr[i] += b[i] - '0';
//			if (arr[i] == 2)
//			{
//				Judge(arr + i);
//			}
//		}
//	}
//	int index = 0;
//	for (int j = strlen(a) + strlen(b) ; j > 0; --j)
//	{
//		if (arr[j])
//		{
//			index = j;
//			break;
//		}
//	}
//	for (int i = 0; i <= index / 2; ++i)
//	{
//		int tmp = arr[i];
//		arr[i] = arr[index - i];
//		arr[index - i] = tmp;
//	}
//	return 0;
//}

#include <stdio.h>
#include <ctype.h>
//int main()
//{
//	char pattern[] = "abc";
//	char s[] = "b c a";
//	int sl = 1;
//	int f = 1;
//	while (f < strlen(s))
//	{
//		if (s[f] == ' ' && isalpha(s[f + 1]))
//		{
//			s[sl++] = s[f + 1];
//		}
//		++f;
//	}
//	s[sl] = 0;
//	int arr[26] = { 0 };
//	int max = 0;
//	for (int i = 0; i < strlen(pattern); ++i)
//	{
//		++arr[pattern[i] - 'a'];
//		if (arr[pattern[i] - 'a'] == 1)
//		{
//			++max;
//		}
//	}
//	int brr[26] = { 0 };
//	int min = 0;
//	for (int i = 0; i < strlen(s); ++i)
//	{
//		++arr[s[i] - 'a'];
//		if (arr[s[i] - 'a'] == 1)
//		{
//			++min;
//		}
//	}
//	sl = 0;
//	f = strlen(s) - 1;
//	while (sl < f)
//	{
//		int x = 0;
//		if (s[sl] == s[sl + 1])
//		{
//			x = 1;
//		}
//		int y = 0;
//		if (pattern[sl] == pattern[sl + 1])
//		{
//			y = 1;
//		}
//		if (x != y)
//		{
//			return 0;
//		}
//		++sl;
//	}
//	return 1;
//}
//
//
//
//int main()
//{
//    int nums[] = { 1,3,5,4,2,3,4,5 };
//    int numsSize = sizeof(nums) / sizeof(nums[0]);
//    int max = nums[0];
//    int sum = 1;
//    int index = 1;
//    for (int i = 1; i < numsSize; ++i)
//    {
//        if (nums[i] > max)
//        {
//            ++sum;
//            max = nums[i];
//        }
//        else
//        {
//            sum = 1;
//            max = nums[i];
//        }
//        if (sum > index)
//        {
//            index = sum;
//        }
//    }
//	return 0;
//}



bool checkXMatrix(int** grid, int gridSize, int* gridColSize) {
    for (int i = 0; i < gridSize; ++i)
    {
        for (int j = 0; j < *gridColSize; ++j)
        {
            if (i == j || j == *gridColSize - i - 1)
            {
                if (!(grid[i][j]))
                {
                    return 0;
                }
            }
            else
            {
                if (grid[i][j])
                {
                    return 0;
                }
            }
        }
    }
    return 1;
}